package com.dao;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;

/**
 * 通用CRUD
 * @author Administrator
 *
 * @param <T>
 */
public class BaseDao<T> {

	Class entityClass;

	public BaseDao() {
		// 反射获取泛型类T的类型
		entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
	}

	@Autowired
	protected HibernateTemplate hibernateTemplate;

	public T get(Serializable id) {
		return (T) hibernateTemplate.get(entityClass, id);
	}

}
